/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufpb.projetoesa.negocio;

import br.ufpb.projetoesa.dados.ProfessorDAOArquivoBin;
import br.ufpb.projetoesa.dados.ProfessorDAOArquivoFactory;
import br.ufpb.projetoesa.dados.ProfessorDAOFactory;
import java.util.List;

/**
 *
 * @author Filipe
 */
public class GerenteDeCadastroProfessor {
    
    ProfessorDAOFactory professorFact;
    ProfessorDAOArquivoBin dao;
    
    private static GerenteDeCadastroProfessor gerente;
          
    public static GerenteDeCadastroProfessor getInstance(){
        if (gerente == null)
            return new GerenteDeCadastroProfessor();
        return gerente;
    }
    
    public GerenteDeCadastroProfessor(){
        professorFact = ProfessorDAOFactory.getProfessorDAOFactory(ProfessorDAOFactory.FILE);
        dao = (ProfessorDAOArquivoBin) professorFact.getProfessorDAO(ProfessorDAOArquivoFactory.BIN);
    }
    
    public void gravar(Professor p){
        dao.salvar(p);
    }
    
    public Professor buscarMat(String mat){
        return dao.getProfessorMatricula(mat);
    }
    
    public Professor buscar(Professor p){
        return dao.getProfessor(p);
    }
    
    public List<Professor> buscarTodos(){
        return dao.getProfessores();
    }
    
    public List<Professor> buscarTodosComProjeto(){
        return dao.getProfessores();
    }
    
    public void atualizar(Professor p){
        dao.atualizar(p);
    }
    
    public void apagar(Professor p){
        dao.remover(p);
    }
    
    public void apagarMatricula(String matricula){
        dao.removerPorMatricula(matricula);
    }   
}
